Architecture

MVP

Model View Presenter

MVVM

Model View ViewModel

MVI

Model View Intent

⚠️ Ici Intent n'est pas le type spécifique à Android

💡 Ceci s'adapte encore plus directement avec Jetpack Compose

Layers

Dependency Rule

Clean Architecture

Google Architecture

ViewModel

  • Formate les données pour l'UI
  • Survit aux "configuration changes"
  • Peut aussi partager des données entre Fragments
  • Fait partie de la "lifecycle library" mais ré-implémentable
  • Ne pas passer de Context (si besoin, étendre AndroidViewModel)

Analogie: Serveur

Repository

  • Pas un Architecture Component mais une bonne pratique
  • Récupère les données d'une ou plusieurs DataSource
  • Choisis la source en fonction des circonstances
  • Synchronise les sources
  • Présente les données

Analogie: Cuisine

state

Compose

  • Similaire: MVVM / MVI
  • Inspirations de React ?

Documentation